55c55,57
< 	CHANNEL_DATA          = 5,
---
> 	CHANNEL_AT_COMMAND_SIM2    = 4,
> 	CHANNEL_DATA          = 7,
> 	CHANNEL_DATA_SIM2     = 8,
155a158,160
> 		case USSP_PORT_AT_SIM2:
> 			channel = CHANNEL_AT_COMMAND_SIM2;
> 			break;
158a164,165
> 		case USSP_PORT_DATA_SIM2:
> 			channel = CHANNEL_DATA_SIM2;
239a247
> 
246,250c254,257
< 	char* 			mux_command = "\r\nAT+SCMUX=3\r\n";
<     
< 	GSMMUX_PRINT("mux command: %s, device: %s, fd %d\n", mux_command, thiz->device_name, thiz->serial_fd);
< 	int i = 0;
< 	for(i; i<10; i++)
---
> 	char* 			mux_command = "\r\nAT+CMUX=0\r\n";//AT+SCMUX=3\r\n";
> 	char* 			mc_command = "\r\nAT+SMMSWAP=0\r\n";
> 	
> 	if(1) //TODO add DSDS condition here
252,258c259,261
< 		if (!SERIAL_AT_COMMAND(thiz, mux_command))
< 		{
< 			GSMMUX_PRINT("cmux command exec failed, maybe it's not in common mode.\n");
< 			sleep(2);
< 			continue;
< 		}
< 		else
---
> 		GSMMUX_PRINT("mux command: %s, device: %s, fd %d\n", mc_command, thiz->device_name, thiz->serial_fd);
> 		int i = 0;
> 		for(i; i<10; i++)
260,261c263,273
< 			GSMMUX_PRINT("cmux command OK.\n");
< 			break;
---
> 			if (!SERIAL_AT_COMMAND(thiz, mc_command))
> 			{
> 				GSMMUX_PRINT("cmux command exec failed, maybe it's not in common mode.\n");
> 				sleep(2);
> 				continue;
> 			}
> 			else
> 			{
> 				GSMMUX_PRINT("cmux command OK.\n");
> 				break;
> 			}
263a276,277
> 
> 	SERIAL_AT_COMMAND(thiz, mux_command);
